<template>
  <div>
    <div id="container"></div>
  </div>

</template>
<script>
import AMapLoader from '@amap/amap-jsapi-loader';
export default {
  name: "map-view",
  mounted() {
    this.initAMap();
  },
  unmounted() {
    this.map?.destroy();
  },
  methods: {
    initAMap() {
      AMapLoader.load({
        key: "b76cb7741e1e8ee34e71801d7bf803fa", // 申请好的Web端开发者Key，首次调用 load 时必填
        version: "2.0", // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
        plugins: ['AMap.ToolBar','AMap.Geolocation','AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.MapType',
  'AMap.PolyEditor', 'AMap.CircleEditor', 'AMap.DistrictSearch', 'AMap.CircleMarker', 'AMap.Polyline'], // 需要使用的的插件列表，如比例尺'AMap.Scale'等
      })
        .then((AMap) => {
          this.map = new AMap.Map("container", {
            // 设置地图容器id
            viewMode: "3D", // 是否为3D地图模式
            zoom: 17, // 初始化地图级别
            resizeEnable: true,
            // center: [116.397428, 39.90923], // 初始化地图中心点位置
          });
          // 创建工具条插件示例
          var toolbar = new AMap.ToolBar(); 
          this.map.addControl(toolbar)
          // 获取高精定位
          var geolocation = new AMap.Geolocation({
            enableHighAccuracy: true, // 是否使用高精度定位，默认：true
            timeout: 20000, // 设置定位超时时间，默认：无穷大
            // offset: [10, 20],  // 定位按钮的停靠位置的偏移量
            zoomToAccuracy: true,  //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见，默认：false
            position: 'RB' //  定位按钮的排放位置,  RB表示右下
          })
          let that = this
          geolocation.getCurrentPosition(function(status,result){
            console.log(status,result)
                if(status=='complete'){
                  that.onComplete(result)
                }else{
                  that.onError(result)
                }
          });

        })
        .catch((e) => {
          console.log(e);
        });
    },
    onComplete(data){
      console.log("获取浏览器当前定位成功",data)
    },
    onError(data){
      console.log("获取浏览器当前定位失败",data)
    }
  },
};
</script>
<style  scoped>
    #container{
        padding:0px;
        margin: 0px;
        width: 100%;
        height: 800px;
    }
</style>
